package test;


import static org.junit.Assert.assertTrue;

import org.junit.Before;
import org.junit.Test;

import Obligatorio.Sistema;
import Obligatorio.Red.RespuestaAmistad;
import Obligatorio.Sistema.Retorno;

public class testSolicitudAmistad {
	
	private Sistema s;

	@Before
	public void setUp() throws Exception {
		s=new Sistema();
		s.crearRed();
	
	}
		
	
	@Test
	public void testSolicitudAmistad_OK(){
		s.registrarUsuario("IDUsuario1");
		s.registrarUsuario("IDUsuario2");
		s.registrarUsuario("IDUsuario3");
		
		Retorno ret;
		ret = s.solicitarAmistad("IDUsuario1","IDUsuario2");
		
		assertTrue(ret.equals(Retorno.OK));
		
		s.listarSolicitudesAmistad("IDUsuario2");
		ret=s.solicitarAmistad("IDUsuario1","IDUsuario3");
		assertTrue(ret.equals(Retorno.OK));
		s.listarSolicitudesAmistad("IDUsuario3");
		System.out.println("****** ESTADOS USUARIOS ******");
		s.listarUsuarios();
		System.out.println("----------------------------------------------------------------");
	}
	
	@Test
	public void testSolicitudAmistad_ERROR_UsuariosInactivos(){
		s.registrarUsuario("IDUsuario1");
		s.eliminarUsuario("IDUsuario1");
		s.registrarUsuario("IDUsuario2");
		Retorno ret=s.solicitarAmistad("IDUsuario1", "IDUsuario2");
		assertTrue(ret.equals(Retorno.ERROR));
		System.out.println("----------------------------------------------------------------");
	}
	
	@Test
	public void testSolicitudAmistad_ERROR_UsuariosInexistentes(){
		Retorno ret=s.solicitarAmistad("IDUsuario33", "IDUsuario55");
		assertTrue(ret.equals(Retorno.ERROR));
		System.out.println("----------------------------------------------------------------");
	}
	
	@Test
	public void testRespSolicitudAmistad_OK(){
		s.registrarUsuario("IDUsuario1");
		s.registrarUsuario("IDUsuario2");
		s.registrarUsuario("IDUsuario3");
		Retorno ret;
		ret=s.solicitarAmistad("IDUsuario1","IDUsuario2");
		assertTrue(ret.equals(Retorno.OK));
		s.listarSolicitudesAmistad("IDUsuario2");
		ret=s.solicitarAmistad("IDUsuario1","IDUsuario3");
		assertTrue(ret.equals(Retorno.OK));
		s.listarSolicitudesAmistad("IDUsuario3");
		System.out.println("******ESTADO USUARIOS PREVIO A ACEPTAR SOLICITUD AMISTAD**********");
		s.listarUsuarios();
		System.out.println("****solicitudes amistad pendientes IDUsuario1**********");
		s.listarSolicitudesAmistad("IDUsuario1");
		System.out.println("****solicitudes amistad pendientes IDUsuario2**********");
		s.listarSolicitudesAmistad("IDUsuario2");
		System.out.println("****solicitudes amistad pendientes IDUsuario3**********");
		s.listarSolicitudesAmistad("IDUsuario3");
		s.responderSolicitudAmistad("IDUsuario2", RespuestaAmistad.ACEPTAR);
		s.responderSolicitudAmistad("IDUsuario3", RespuestaAmistad.ACEPTAR);
		System.out.println("******ESTADO USUARIOS DESPUES A ACEPTAR SOLICITUD AMISTAD**********");
		s.listarUsuarios();
		System.out.println("****solicitudes amistad pendientes IDUsuario1**********");
		s.listarSolicitudesAmistad("IDUsuario1");
		System.out.println("****solicitudes amistad pendientes IDUsuario2**********");
		s.listarSolicitudesAmistad("IDUsuario2");
		System.out.println("****solicitudes amistad pendientes IDUsuario3**********");
		s.listarSolicitudesAmistad("IDUsuario3");
		System.out.println("----------------------------------------------------------------");
	}
	
	
	

	
	
}
